//////////////////////////////////////////////////////////////////////////

#ifndef _CLIENTMAPPARSER_H_
#define _CLIENTMAPPARSER_H_

#ifndef _MAPPARSERBASE_H_
#include "mapparserbase.h"
#endif

#ifndef _COMMONTYPES_H_
#include "commontypes.h"
#endif

//////////////////////////////////////////////////////////////////////////

/** Parser for map description files on client side
*
*  @author   Anastasia Karpinska
*  @since    May 08th, 2010
*  @updated  May 08rd, 2010
*/
class ClientMapParser : public MapParserBase
{
//////////////////////////////////////////////////////////////////////////

public:

//////////////////////////////////////////////////////////////////////////


    /** Constructor */
    ClientMapParser( const char* _fileName );


    /** Destructor */
    virtual ~ClientMapParser();


    /** Returns walls points */
    const Points& GetWalls() const;


//////////////////////////////////////////////////////////////////////////

private:

//////////////////////////////////////////////////////////////////////////


    /** Set map size */
    virtual void SetMapSize( int _w, int _h );


    /** Parse circle */
    virtual void ParseCircle();


    /** Parse rect */
    virtual void ParseRect();


    /** Parse polygon */
    virtual void ParsePolygon();


    /** Parse wall */
    virtual void ParseWall();


    /** Parse revival points */
    virtual void ParseRevivalPoints();


    /** Parse shape position */
    Point ParsePosition();


//////////////////////////////////////////////////////////////////////////

private:

    /** Map width */
    int m_Width;


    /** Map height */
    int m_Height;


    /** Walls points on the map */
    Points m_WallPoints;

    
//////////////////////////////////////////////////////////////////////////
};


//////////////////////////////////////////////////////////////////////////

#endif

//////////////////////////////////////////////////////////////////////////
